package Negocio;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import DTO.EmpleadoVO;
import SRV.SucursalSRV;
import SRV.UsuarioSRV;

@Entity
@Table(name="empleados")
public class Empleado 
{
	
	@Id
	@Column (name="dni")
	private int dni;
	@Column (name="nombre")
	private String nombre;
	@Column (name="categoria")
	private String categoria;
	@OneToOne
	@JoinColumn(name="usuario")
	private Usuario usuario;
	@OneToOne
	@JoinColumn(name="idSucursal")
	private Sucursal sucursal;
	
	public Empleado(String nombre, int dni, String categoria, Usuario usu)
	{
		super();
		this.nombre = nombre;
		this.dni = dni;
		this.categoria = categoria;
		this.usuario = usu;
		this.sucursal = null;
	}
	
	public Empleado(){}
	
	public boolean sosElEmpleado(int dni){
		return this.dni == dni;
	}

	public String getNombre() {
		return nombre;
	}

	public int getDni() {
		return dni;
	}

	public String getCategoria() {
		return categoria;
	}

	public EmpleadoVO toVO() 
	{
		EmpleadoVO empleadoVO = new EmpleadoVO(getNombre(), getDni(), getCategoria(), getUsuario().getUsuario(), getSucursal().getIdSucursal());
		return empleadoVO;
	} 

	public Empleado toBusiness(EmpleadoVO encargado) {
		Usuario usu = new Usuario();
		Sucursal suc = new Sucursal();
		UsuarioSRV daoUsu = new UsuarioSRV();
		SucursalSRV daoSuc = new SucursalSRV();
		usu = daoUsu.getUsuario(encargado.getUsuario());
		suc = daoSuc.getSucursal(encargado.getSucursal());
		return new Empleado(encargado.getNombre(), encargado.getDni(), encargado.getCategoria(), usu);
	}
	
	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public Sucursal getSucursal() {
		return sucursal;
	}

	public void setSucursal(Sucursal sucursal) {
		this.sucursal = sucursal;
	} 

	public boolean tenesEsteUsuario(String usuario2) {
		return getUsuario().equals(usuario2);
	}

}
